package Management;

import java.util.ArrayList;
import java.util.List;




import Entities.Pedido;
import Entities.ServicioAdicional;
import bean.dao.PedidoDAO;
import paquetes.negocioVO.PedidoVO;
import paquetes.negocioVO.ServicioAdicionalVO;

public class ManagementPedido {

	
private static ManagementPedido instancia;
	
	public static ManagementPedido getInstancia(){
		if(instancia == null)
			instancia = new ManagementPedido ();
		return instancia;
	}
	
	public PedidoVO pedidoEntitieAVO(Pedido pedido) {
		PedidoVO pedidoVO = new PedidoVO();
		return pedidoVO;
	}
	
	public Pedido VOAEntitie(PedidoVO pedido){
		Pedido ped = new Pedido();
		
		return ped;
	}

	public void guardarPedido() {
		

				
		
	}
	
	public void bajaPedido(int id) {
		PedidoDAO miPedidoDAO = new PedidoDAO();
		miPedidoDAO.bajaPedido(id);
	}

	public List<PedidoVO> obtenePedidos() {
		try {
			PedidoDAO miPedido = new PedidoDAO();
			List<Pedido> pedidos = miPedido.obtenerPedidos();
			List<PedidoVO> pedidosVO = new ArrayList<PedidoVO>();
			for (int i=0;i < pedidos.size();i++)
			{
				PedidoVO ped = this.pedidoEntitieAVO(pedidos.get(i));
				pedidosVO.add(ped);
			}
			return pedidosVO;
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public PedidoVO obtenerPedido(int idPed) {
		try {
			PedidoDAO miPedido = new PedidoDAO();
			Pedido eh = miPedido.getPedido(idPed);
			if (eh==null)
				return null;
			PedidoVO ped = this.pedidoEntitieAVO(eh);
			return ped;
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
		
	}
	

	public void editarPedido(int idSuc, PedidoVO pedido) {
		
		Pedido emp = new Pedido();
		PedidoDAO miPedidoDAO = new PedidoDAO();
		PedidoDAO.actualizarPedido(idSuc,this.VOAEntitie(pedido));
		
	}

	public List<ServicioAdicionalVO> obtenerServiciosAdicionalesDePedido(PedidoVO p) {
		PedidoDAO miPedido = new PedidoDAO();
		Pedido ped = miPedido.getPedido(p.getId());
		
		List<ServicioAdicionalVO> listaVO = new ArrayList<ServicioAdicionalVO>();
		List<ServicioAdicional> lista = (List<ServicioAdicional>) ped.getServiciosAdicionales();
		
		for(int i=0;i<lista.size();i++){
			
			ServicioAdicionalVO ser = ManagementServicioAdicional.getInstancia().ServicioAdicionalEntitieAVO(lista.get(i));
			listaVO.add(ser);	
			
		}
		
		
		return null;
		
		
		
		
	}
		
	}


